Stackable elements, as used in this application, are switches or routers that may function in a stand-alone mode and may also function within a stack. These stackable elements are coupled into a single logical unit called a stack and are operatively interconnected via a pair of designated stack ports present on each of the stackable elements. The system of stackable elements is generally coupled in series and the topology of the system generally characterized by a closed loop called a ring or an open strand of elements referred to herein as a chain. Each of the stackable elements may be adapted to perform switching between its own data ports as well as the data ports of other stackable elements by transmitting packets via the stack ports that facilitate the efficient transmission and switching of these packets to the appropriate stack element port.
Each element in a stack is capable of election as the primary master or the secondary master, also referred to here as the primary element and the secondary element. The primary master performs the primary stack management functions, which may include maintaining and updating one or more configuration files, routing information and related database structures, and other stack information. The secondary master acts as a back-up to the primary master. One primary master element and one secondary master element are generally elected in a stack system. This election mechanism may be governed by various election criteria as known to those of ordinary skill in the art. Such election criteria, for example, may be governed by the switchable element having the lowest media access control (MAC) address or having the longest uptime or having the lowest stack identifier. User priority may also govern the primary and secondary master election.
Various pieces of information are needed to effectively run and communicate within a system of stackable elements, such as integrated stack switches. The system of stackable elements is generally, for example, identified with one Internet Protocol (IP) address and one stack address. This makes the system of stackable elements appear as one logical unit, particularly, to external devices communicating with such system.
Each stackable element is typically delivered to a customer with a unique local MAC address. This address is a globally-assigned, organizationally-unique identifier that is assigned by the manufacturer. This MAC address is generally stored in persistent memory. In traditional stackable element systems, the stack address mirrors the MAC address of the currently running primary master. Thus, when a primary master fails and a secondary master starts functioning as the primary master, the stack address for the system of stackable elements is also accordingly changed to reflect the MAC address of the now running primary master.
These changes upon a failover may impact not only the system of stackable elements but also surrounding devices that communicate with this stack. One example is the impact to Address Resolution Protocol (ARP) tables and other Layer 3 tables. For example, assume that the system of stackable elements, Stack A, is known to surrounding devices with stack address, M1. When a failover occurs, the secondary starts functioning as the new primary master and the stack address is also accordingly changed, for example, to M2, i.e., the new primary master's MAC address. Stack A advertises its new stack address—M2. Neighboring or surrounding nodes which have already associated Stack A with stack address M1, now have to changed their ARP tables to associate Stack A with the new stack address M2. This change in stack address also entails updating and replacing all routes using the previous stack address of M1 as the next hop, with the new stack address M2.
Another aspect that may be impacted is link aggregation, which may be effectuated in accordance with known standards. Link aggregation or trunking is a method of combining physical network links into a single logical link to increase bandwidth. In some prior art embodiments, changing the stack address results in the aggregates or trunks being recomputed considering that the stack address is used in computing keys necessary to provide link aggregation. A change in the stack address thus generates a new set of keys using the new address.
Another aspect that may be impacted is the recalculation of the spanning tree in accordance with known spanning tree protocols. If the stack address is changed due to the election of a new primary master, a new spanning tree may have to be recalculated to account for this change. This is particularly burdensome when the new elected primary master becomes the new root bridge. The root bridge uses the MAC address as one of its parameters.
Further, changes in a stack address may also have a direct impact to the network and to the performance of the system of stackable elements. The change of stack address can give rise to higher latency due to relearning of the new stack address or re-computation of new spanning tree or trunks. This may lead to situations where links are temporarily down. Such impact is particularly burdensome when multiple primary master to secondary master failovers occur within the stack.